const mysql = require('mysql')
const path = require('path')
const formidable = require('formidable');

// 创建一个链接池
// 添加链接配置 端口
const conn = mysql.createPool({
   http:'localhost',
   user:'root',
   password:'123456',
   database:'mybase'
})
// 形成一个暴露成员的对象   将事件封装形成一个函数   后期输出函数即调用该事件
module.exports={
   getalldata:function(req,res){
      // 创建sql语句
      let sql = 'select * from heros where isdel = 0'
      // 调用方法执行sql语句并接收处理结果
     conn.query(sql, (error, results) => {
      if (error) {
        res.json({
          code: 500,
          msg: '数据查询失败，请重试'
        })
      } else {
        res.json({
          code: 200,
          msg: '数据查询成功',
          // 一定要记得将数据响应，查询所获取的结果是数组  data这个键是我自己定义的
          data: results
        })
      }
    })
   },
   uploadFile:function(req,res){
      // 创建文件上传对象
      const form = formidable();    //综合写法  const form = formidable（uploadDir，keepExrtensions）
      // 配置上传文件的存放目录，一定要使用绝对路径
      form.uploadDir = __dirname + '/public/images';
      // 保留文件拓展名
      form.keepExtensions = true;
      form.parse(req, (err, fields, files) => {
         if(err){
            res.json({code:500,msg:'文件上传失败'})
         }else{
            //  fields:本次传递普通的键值对,它是一个对象
            console.log(fields);
            // files：这是当前上传文件的原始信息和上传成功之后的服务器端的文件信息
            console.log(files);
            res.json({
               code:200,
               msg:'文件上传成功',
               img:path.basename(files.img.path)
            })
         }
       });
   },
   add:function(req,res){
      console.log(res.body);
      if(!req.body.name){
         return  res.json({
            code:400,
            msg:'name参数不正确'
         })
      }
         // 创建sql语句
         let sql = 'insert into heros set ?'
         // 发送请求
         conn.query(sql,req.body,(err)=>{
            if (err) {
               res.json({ code: 500, msg: '新增失败' })
             } else {
               res.json({ code: 200, msg: '新增成功' })
             }
         })
   },
   getHeroById:function(req,res){
      // 获取到数据的id
      console.log(req.query);
      let id = req.query.id
      let sql = 'select * from heros where id =' + id
      conn.query(sql, (err, results) => {
         if (err) {
           console.log(err);
           res.json({ code: 500, msg: '数据查询失败' })
         } else {
            res.json({
              code: 200,
              msg: '数据查询成功',
              data: results[0]
            })
         }
        })
   },
   edit: function (req, res) {
      // 接收参数
      console.log(req.body);
      if (!req.body.id) {
        return res.json({ code: 400, msg: 'id参数不正确' })
      }
      // 创建sql语句
      let sql = 'update heros set ? where id = ?'
      // 数据请求
      conn.query(sql, [req.body, req.body.id], (err) => {
        if (err) {
          console.log(err);
          res.json({ code: 500, msg: '编辑失败' })
        } else {
          res.json({ code: 200, msg: '编辑成功' })
        }
      })
    
  },
  delete:function(req,res){
    console.log(req.query.id);
    let id = req.query.id;
    let sql = 'update heros set isdel = 1 where id = ' + id
    conn.query(sql, (err) => {
       if (err) {
         console.log(err);
         res.json({ code: 500, msg: '删除失败' })
       } else {
          res.json({
            code: 200,
            msg: '删除成功',
          })
       }
      })
  }
}